
// setInterval：定时执行：每隔多少秒执行一次

// setTimeout: 等待执行，多少秒后执行
// setTimeout(() => {
//   console.log("this is setTimeout");
// }, 1000);

// // setImmediate:约等于setTimeout(fn,0)，都是宏任务
// setImmediate(() => {
//   console.log("this is setImmediate");
// });
// nextTick: 多个事件中交叉执行cpu运算密集型任务，比如服务器http请求的时候，还能抽空进行一些计算任务，如果不用nextTick而是同步计算，那么会卡在这里
// 另外一个场景就是保证订阅在发布之前，即nextTick包装一下emit
process.nextTick(()=>{
    console.log('this is nextTick')
})
const num = parseFloat(11)
console.log('num: ', num);
// performance v16新增属性

/**
 * process
 */

// __dirname
const dirPath = __dirname;
console.log("dirPath: ", dirPath);
// __filename
const filePath = __filename;
console.log("filePath: ", filePath);
// argv：脚本执行参数
console.log(process.argv);
// node的版本信息
console.log(process.version);
//node版本及其依赖的版本信息
console.log(process.versions);
// 进程的运行时长
setInterval(()=>{
    console.log('the node uptime is: ',process.uptime());
},2000)
// 当前工作目录
console.log(process.cwd());
// 操作系统平台
console.log(process.platform);

// global
console.log(global);
console.log(Object.getOwnPropertyNames(global))

const hString = BigInt("199999999999999999999999");
console.log(hString);